home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / wmv12s.zip / PUTN.ASM < prev    next >
Assembly Source File  |  1993-01-04  |  763b  |  41 lines

  1. ; allows C program to call cputs with multiple arguments.
  2. ; E.g. putn("How ", "are ", "you?", 0);
  3. ; the last argument must be either 0 or ""
  4.  
  5. _text    segment public byte 'code'
  6.     assume cs:_text
  7.  
  8.     extrn    _cputs:near
  9.  
  10.     public    _putn
  11. _putn    proc    near
  12.     push    si
  13.     push    di
  14.     push    bp
  15.     mov    bp,sp
  16.  
  17.     mov    si,8
  18. loop:
  19.     mov    di,[bp+si]    ; get next string
  20.     or    di,di        ; is it NULL
  21.     je    done        ; if so, nothing more to print
  22.     or    byte ptr [di],0 ; it is "" (null string)
  23.     je    done        ; if so, nothing more to print
  24.  
  25. ; now call cputs to print the string
  26.     push    di        ; push parameter on stack
  27.     call    _cputs
  28.     pop    di        ; get rid of parameter on stack
  29.  
  30.     add    si,2        ; point to next parameter
  31.     jmp    loop
  32.  
  33. done:
  34.     pop    bp
  35.     pop    di
  36.     pop    si
  37.     ret
  38. _putn    endp
  39. _text    ends
  40.     end
  41.